一.LinkedHashSet类
/**
 * LinkedHashSet使用:
 *     特点:可以去除重复元素(去除重复元素原理和HashSet相同,底层依赖hashCode()与equals()方法)
 *         可以保证元素的存取顺序一致
 */
二.Map体系
  1.Map概述:
    Map<K,V>:K代表 key,V代表 value
    Map体系集合会存储键值对 key = value
    学生的学号和姓名
      学号   姓名
      01    张三
      02    李四
      03    王五
    人的身份证号和姓名
        身份证号   姓名
       41xxx     张无忌
       42xxx     周芷若
  2.Map体系常用方法:
        /**
         * HashMap中的方法:
         *  key的特点:
         *    HashMap保证key唯一,底层原理依然是通过hashCode()方法与equals()方法保证key的唯一
         *    HashMap中存取的键值对顺序和取出顺序不一定相同
         *
         *  V put(K key, V value)
         *          将键值对添加到map中
         *          返回值:
         *             如果当前添加的key与map中已有key都不相同,那么这个put方法返回null
         *             如果当前添加的key与map中已有key重复,此时会将key对应的新值覆盖掉老值,同时返回老值
         *
         *
         *   V get(Object key)
         *           根据key获取对应的value
         *           如果key在当前map不存在,那么返回null
         *   int size()
         *            返回的是当前map中键值对的个数
         *   void clear()
         *           清空map中所有的键值对
         */

        /**
         * boolean isEmpty()
         *            如果map中没有键值对则返回true,如果map中有键值对则返回false
         * boolean containsKey(Object key)
         *           判断指定的key在map中是否存在,如果存在返回true,否则返回false
         *   V remove(Object key)
         *           根据key移除map中的键值对,返回该key对应的value
         *           如果该key对应的value不存在,那么返回null
         */
  3.Map体系两种遍历方式:
    a.keySet()遍历
        /**
         * HashMap遍历
         *    由于Map体系中没有获取迭代器方法,所以Map体系不能通过迭代器直接遍历
         *    所以我们考虑将Map体系集合转换成Collection体系集合,那么就可以使用迭代器遍历
         *
         *  Set<K> keySet()
         *          将map中所有的key封装到一个Set集合中,然后返回这个Set集合
         */
     b.entrySet()遍历
            /**
             * HashMap第二种遍历方式
             *   Set<Map.Entry<K,V>> entrySet()
             *
             *   Set:代表entrySet()方法返回一个Set集合
             *
             *   Set<>:代表将来存储到Set集合中元素的类型
             *
             *   Set<Map.Entry>:代表Set集合中存储的元素类型Map.Entry
             *
             *   Set<Map.Entry<K,V>>:代表Set集合中存储的元素类型是Map.Entry,Entry上指定了键(Key)和值(Value)的类型
             */
   4.LinkedHashMap特点
        /**
         * LinkedHashMap使用
         *   1.LinkedHashMap保证存储的Key唯一(唯一原理还是依赖hashCode()方法和equals()方法)
         *   2.LinkedHashMap可以保证key的存取顺序一致
         */
   5.集合嵌套
        /**
         * 集合嵌套:集合套集合
         * ArrayList<ArrayList>
         * ArrayList<HashSet>
         * HashMap<ArrayList,HashMap>
         * Map套Map
         * 需求:
         * 一班
         * 1001 张三
         * 1002 李四
         * 1005 王五
         * 二班
         * 2003 无忌
         * 2005 乔峰
         * 2007 虚竹
         * 嵌套集合构造数据从内向外构建
         * 嵌套集合遍历从外向内遍历
         */
     6.Arrays类:
        /**
         * Arrays:一个专门操作的数组工具类,里面定义了大量操作数组方法:对数组排序,对数组二分查找...
         * static <T> List<T> asList(T... a)
         *      asList可以将数组中的元素封装到一个集合中,然后返回这个集合
         *
         * <T> T[] toArray(T[] a)
         *       将集合中元素封装到指定数组中,然后返回这个数组
         * ArrayList类中
         *  ArrayList(Collection<? extends E> c)
         *           构造一个包含指定 collection 的元素的列表，这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
         *
         */
     7.泛型限定
        /**
         * 泛型:
         *   通配符
         *   匹配任意引用类型
         */
        /**
         * 泛型限定
         * 需求:
         *   1.首先定义三个集合,这三个集合分别存储人,学生,老师
         *   2.再定义一个方法,这个方法可以接收这三个集合
         *     在方法内部遍历集合,在遍历过程中调用吃方法
         *
         *  ? extends E: 泛型上限 限制传入的泛型只能为E类型或者E的子类型
         *  ? super E: 泛型下限  限制传入的泛型只能为E类型或者E的父类型
         */
      8.Collections类
        /**
         * Collection接口:是单列集合的顶级父接口
         * Collections类:专门操作集合的工具类,这个类中大量方法都跟我们的集合相关
         *
         * static <T> boolean addAll(Collection<? super T> c, T... elements)
         *                         将所有指定元素添加到指定 collection 中。
         * static void reverse(List<?> list)
         *           反转指定列表中元素的顺序。
         *
         * static void shuffle(List<?> list)
         *           可以随机集合中元素
         */